1. Technical Field
The present invention relates generally to processors and computing systems and in particular, to a simultaneous multi-threaded (SMT) processor. Further, the present invention relates to managing execution of single-threaded (ST) workloads and SMT workloads in a SMT enabled system without switching the processors of the system between ST mode and SMT mode.
2. Description of the Related Art
Improvement of computing technology requires improving the performance characteristics of computer systems that operate under dynamically changing load requirements. One method of improving the performance of a computer system is through use of multiple processors that share the processing load by executing portions of a computer program or separate computer programs in parallel. Another method of improving the performance of a computer system is by enabling multiple hardware threads to execute on each processor where each thread processes a different workload or a different portion of one or more workloads. In a processing system where multiple hardware threads are active, an operating system may support simultaneous multi-threading (SMT) where multiple threads run “simultaneously” on each processor. For a workload to run across the multiple threads, an operating system activates the multiple hardware threads for each processor in a SMT mode.
However, while enabling the SMT mode improves the execution time for some types of workloads, there are other types of workloads for which activating only one hardware thread per processor would be more efficient. For example, high performance computing (HPC) workloads, which require jobs to proceed at the same speed through each processor, perform more efficiently where only one hardware thread is active on each processor. To accommodate workloads that run more efficiently where only one hardware thread is active on each processor, the operating system may facilitate switching all the processors in the system from running in a SMT mode to a single-threaded (ST) mode. In an ST mode, there is only one hardware thread active on each processor. Therefore, to switch from SMT mode to ST mode, all but one hardware thread on each processor is removed at the processor level.
One limitation of an operating switching between SMT mode and ST mode based on the mode most efficient for the type of workload is that each mode switch requires a dynamic reconfiguration event per hardware thread being removed or activated at the processor level. A dynamic reconfiguration event is time consuming because hardware threads are represented by the operating system as logical processing units. Thus, removal or activation of each hardware thread requires separate interrupts at the hardware, operating system and application levels to actually disable hardware threads at the hardware level, to dynamically reconfigure the available logical processors to only one logical processor per physical processor, and to adapt all kernel extensions and applications to only bind to the reconfigured logical processors. Performing a dynamic reconfiguration event on each processor is further limited as the number of processors increases. For example, if each dynamic reconfiguration event takes three seconds per processor and there are 64 processors, each switch of the SMT enabled processors from ST mode to SMT mode or SMT mode to ST mode could take about 3 minutes.
Another limitation of an operating system switching between SMT mode and ST mode based on the mode most efficient for the type of workload is that the operating system runs all the processors in a system either in SMT mode or ST mode. Because the system operates in one mode or the other, when the system is enabled in SMT mode, even though processors may sit idle, an ST workload will wait until the workload processed in SMT mode is complete and the operating system switches from SMT mode to ST mode.
Therefore, in view of the foregoing, there is a need for a method, system, and program for running SMT workloads and ST workloads on a SMT enabled system, without switching between modes, but with comparable performance to running ST workloads in ST mode. In addition, there is a need for a method, system, and program for running mixed workloads of both SMT workloads and ST workloads concurrently on a SMT enabled system running in SMT mode.